package com.weijian.dto.data;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;
import java.util.Map;

/**
 * SQL查询结果DTO
 * 封装查询返回的数据,包括列名、数据行、行数和执行时间等信息
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class QueryResult {

    /**
     * 列名列表
     * 查询结果中的所有列名,按照SELECT语句中的顺序排列
     */
    private List<String> columns;

    /**
     * 数据行列表
     * 每一行数据表示为Map,key为列名,value为列值
     */
    private List<Map<String, Object>> rows;

    /**
     * 影响行数
     * 查询返回的总行数
     */
    private int rowCount;

    /**
     * 执行时间(毫秒)
     * SQL查询从开始到结束的耗时
     */
    private long executionTime;
}
